package com.chenqi.tool.ext

import java.math.BigDecimal
import java.text.NumberFormat
import kotlin.math.abs
import kotlin.math.floor

/**
 * 作者: CQ
 * 日期: 2022-06-10
 * 说明:
 */
/**
 * 获取字符串
 * ？、空字符串、空白字符串和null字符串自动转换为空字符串（也就是""）
 */
fun String?.toStringNotNull() : String {
    if (this == null) {
        return ""
    }
    if (this.trim().isEmpty()) {
        return ""
    }
    if (this == "null") {
        return ""
    }
    return this
}



/**
 * 显示数量
 */
fun String.getShowSL() : String {
    return toDoubleOrNull()?.toInt().toString()
}

/**
 * 显示价格（整数的就只显示整数）
 */
fun String.getShowJE() : String {
    val numberFormat = NumberFormat.getNumberInstance()
    numberFormat.isGroupingUsed = false
    return numberFormat.format(retain2().toDouble())
}

// 默认显示两位小数
fun String.retain2(scale : Int = 2) : String {
    return BigDecimal(this).setScale(scale, BigDecimal.ROUND_HALF_UP).toString()
}

/**
 * 取余
 */
fun String.getSurplus() : Double {
    val longPart = this.toDouble().toInt()
    return BigDecimal(toString()).subtract(BigDecimal(longPart)).toDouble()
}

/**
 * 取整
 */
fun String.getRounding() : Double {
    return floor(this.toDouble())
}


fun String.toAbs() : String {
    return abs(this.toDouble()).toString()
}

